/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Datos;

import Negocio.Canton;
import Negocio.Cedula;
import Negocio.EstadoCivil;
import Negocio.Instruccion;
import Negocio.Persona;
import Negocio.Profesion;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

/**
 *
 * @author Dvid
 */
public class CedulaDB {
    public boolean grabar(Cedula cedula) throws SQLException {
        OperacionesBase db = new OperacionesBase();
        String query = "insert into cedula values('"+cedula.getFecha()+ "', '"+cedula.getFirma()+"', '"+cedula.getEstado().getId()+ "', '"+cedula.getProfesion().getId()+ "', '"+cedula.getInstruccion().getId()+ "', '"+cedula.getPersona().getNumero()+ "', '"+cedula.getPersona().getCanton().getProvincia().getId()+ "', '"+cedula.getPersona().getCanton().getId()+ "', '"+cedula.getCanton().getProvincia().getId()+ "', '"+cedula.getCanton().getId()+"')";
        Boolean resultado = db.ingreso(query);
        db.cerrarConexion();
        return resultado;
    }
     
  public int modificar(Cedula cedula) throws SQLException {
        OperacionesBase db = new OperacionesBase();
        String query="update cedula set nombre='" +cedula.getFecha()+ "', '"+cedula.getFirma()+"', '"+cedula.getEstado().getId()+ "', '"+cedula.getProfesion().getId()+ "', '"+cedula.getInstruccion().getId()+ "', '"+cedula.getPersona().getNumero()+ "', '"+cedula.getPersona().getCanton().getProvincia().getId()+ "', '"+cedula.getPersona().getCanton().getId()+ "', '"+cedula.getCanton().getProvincia().getId()+ "', '"+cedula.getCanton().getId()+ "' where cedula='" + cedula.getId()+"'";
        int resultado = db.modificacioneliminacion(query);
        db.cerrarConexion();
        return resultado;
    }
     
    public Cedula buscar(String numero) throws SQLException {
        OperacionesBase db = new OperacionesBase();
        String query="select * from cedula where id = '" + numero+"'";        
        ResultSet resultado = db.seleccion(query);
        Cedula cedula=null;
        EstadoCivil estado; 
        EstadoCivilDB esta= new EstadoCivilDB();
        CantonDB canton = new CantonDB();
        Canton can;
        Persona persona;
        PersonaDB pers = new PersonaDB();
        Instruccion instruccion;
        Profesion profesion;
        InstruccionDB inst = new InstruccionDB();
        ProfesionDB prof = new ProfesionDB();
        
       
        if (resultado!=null) {
            if(resultado.next()){
            System.out.println("dentro de buscar");
            cedula = new Cedula();
            cedula.setId(resultado.getInt("id"));           
            cedula.setFecha(resultado.getString("fecha_expedicion"));
            cedula.setFirma(resultado.getString("firma"));
            estado = esta.buscar(resultado.getInt("id_estado_civil"));
            cedula.setEstado(estado);
            can = canton.buscar(resultado.getString("id_canton"));
            cedula.setCanton(can);
            persona = pers.buscar(resultado.getString("numero_persona"));
            cedula.setPersona(persona);
            profesion = prof.buscar(resultado.getInt("id_profesion"));
            cedula.setProfesion(profesion);
            instruccion = inst.buscar(resultado.getInt("id_instruccion"));
            cedula.setInstruccion(instruccion);
            
            
            

            
            
            }
        }
        db.cerrarConexion();
        return cedula;
        
    } 
    
     
    public ArrayList listar() throws SQLException {
        OperacionesBase db = new OperacionesBase();
        String query="select * from usuario ";
        ResultSet resultado = db.seleccion(query);
        Persona persona=null;
        
        ArrayList todos=new ArrayList();
        while (resultado.next()) {
            persona = new Persona();
            persona.setNombre(resultado.getString(2));           
            persona.setNumero(resultado.getString(1));
            persona.setApellidos_padre(resultado.getString(3));
            persona.setApelidos_madre(resultado.getString(4));
            persona.setNumero(resultado.getString(5));
            todos.add(persona);
        }
        db.cerrarConexion();
        return todos;
} 
}
